﻿using KinonekoSoftware.CodariaDB.Documents.Shenanigans;

namespace KinonekoSoftware.Studio.Models.Shenanigans.Talking
{
    public abstract class TalkingMSG : ObservableObject
    {

        private bool _isSelected;

        public abstract void Update(Character character);


        public abstract bool          IsCompleted(out string err);
        public abstract void          SetCharacter(Character character);
        public abstract TalkingObject GetTalkingObject();
        public abstract TalkingObject Duplicate();

        public abstract string Id { get; }
        public abstract string FullText { get; }

        /// <summary>
        /// 获取或设置 <see cref="IsSelected"/> 属性。
        /// </summary>
        public bool IsSelected
        {
            get => _isSelected;
            set => SetValue(ref _isSelected, value);
        }
    }
}